/**
 * 2
 *  
 * @Author : roryrywang
 * @DateTime : 24-9-9 下午6:48
 */

#include <iostream>
#include <vector>
#include <unordered_map>

using namespace std;

int main() {
    int n;
    cin >> n;
    vector<int> vec(n + 1);
    unordered_map<int, vector<int>> mapVec;
    unordered_map<int, int> map;
    for (int i = 1; i <= n; i++) {
        cin >> vec[i];
        mapVec[vec[i]].push_back(i);
        map[vec[i]] = 0;
    }

    // for (auto u : mapVec) {
    //     cout << u.first << ": " ;
    //     for (auto m : u.second) {
    //         cout << m << " ";
    //     }
    //     cout << endl;
    // }
    // for (auto m : map) {
    //     cout << m.first << ": "<<m.second<<endl;
    // }

    for (int i = 1; i <= n; i++) {
        int idx = map[vec[i]];
        if (idx + 1 < mapVec[vec[i]].size()) {
            cout << mapVec[vec[i]][idx] << " " << mapVec[vec[i]][idx + 1] << " ";
            map[vec[i]] += 2;
        }
    }
    return 0;
}